Data transfer method and data transfer device

ABSTRACT

A data transfer method which is capable of transferring a predetermined amount of data in one transaction at only one time, and preventing the number of ports of a master chip and the number of signal lines connected between the master chip and slave chips from being increased. A single master chip and a plurality of slave chips which receive data transferred from the master chip are connected by a ring-like path. Data is transferred from the master chip to the slave chips via the ring-like path.

This is a continuation application of U.S. Ser. No. 11/147,120 filed Jun. 7, 2005.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a data transfer method of interconnecting electronic chips, such as IC chips, and a data transfer device.

2. Description of the Related Art

To enable configuration or the like of registers of a plurality of slave chips to be performed between one master chip and the slave chips, the master chip is connected to the slave chips by respective signal lines of address buses, signal lines of writing data buses, signal lines of reading data buses, and chip-selecting signal lines, for configuration of the registers (see Japanese Laid-Open Patent Publication (Kokai) No. 2001-142735).

Further, for resetting as well, reset pins are provided separately for the respective slave chips, and a plurality of signal lines for resetting signals are separately connected to the respective reset pins on a circuit board.

In this case, all the signal lines of the buses and the resetting signal lines need to be connected to the respective slave chips on the circuit board into which the slave chips are integrated.

This increases the numbers of signal lines of the address buses, the writing data buses, the reading data buses, the chip-selecting signals, and the resetting signals, in proportion to the number of slave chips to which they are connected.

Further, each slave chip needs to be provided with input and output pins for configuration of its registers, and a resetting pin, which increases the number of pins of the slave chip.

The initial settings of the slave chip, such as register settings, and various settings before execution of data processing need not be frequently changed, compared with the settings during execution of data processing, and can be sufficiently made at low setting speed.

Therefore, to make register settings between the master chip and the slave chips, the signal lines therefor need not be signal lines of buses, but in most cases, signal lines for serial communication are sufficient for this use.

Actually, however, signal lines of the buses are often used to connect the master chip and the slave chips, causing an increase in the number of lines of wiring and complication of the wiring.

Therefore, by minimizing the number of lines of wiring between the master chip and the slave chips in view of ease of wiring therebetween, the total number of lines of wiring of the whole system can be reduced and the whole system can be designed with ease.

Further, to reset the slave chips, it is necessary to provide resetting signal lines individually for the respective slave chips. Normally, resetting control is provided such that all the slave chips on the same circuit board are reset, but not such that only a selected specific chip is reset.

To control the resetting signals by a chip other than the master chip and the slave chips, resetting signal lines need to be provided separately for the respective slave chips to which the resetting signals are to be supplied, and the other chip needs to control the resetting signals supplied to the slave chips.

This necessitates provision of as many resetting signal lines as the slave chips to be reset, which causes an increase in the number of lines of wiring and complication of the wiring.

If the master chip can reset required one or more of the slave chips connected to the master chip, or all the slave chips, this enables reduction of the number of resetting signal lines and enables resetting only selected one or more of the slave chips.

Further, to serially transfer data from the master chip to the slave chips, the master chip needs to be connected to each slave chip, in one-to-one relationship, for the transfer of data.

In this case, to carry out writing of data into a register of each slave chip and reading of data therefrom, two signal lines i.e. one for transfer of data from the master chip to the slave chip, and the other for transfer of data from the slave chip to the master chip, are required at the minimum.

To transfer data directly from one master chip to all slave chips, it is necessary to provide as many signal lines for transfer of data from the master chip to the slave chips, and as many signal lines for transfer of data from the slave chips to the master chip as the number of the slave chips, and the master chip needs to control the transfer of data to each slave chip. Further, as many chip-selecting signal lines as the slave chips need to be connected from the master chip to the slave chips, to select which of the slave chips the master chip should access for writing or reading of data.

That is, for one master chip to transfer serial data to a plurality of slave chips, it is necessary to additionally provide a signal for selecting a slave chip (hereinafter referred to as “the chip select signal”) used for discrimination of a slave chip to which the data is to be transferred, and assert the chip select signal in accessing the intended slave chip.

Further, as many signal lines for the chip select signal as the slave chips are required, which results in an increase in the number of signal lines.

The master chip cannot know the state of a signal level of each signal line via which the data is transferred from the master chip to the associated slave chip, and there is a possibility that noise is added to the signal line depending on the conditions of the circuit board and the wiring conditions of the signal line, whereby the signal level is changed due to the influence of the noise, causing an error in transfer of the data.

To overcome the problem of an error caused by noise in the data received by each slave chip, it is envisaged that the slave chip carries out parity error processing on the received data. In this case, depending on the setting of a parity bit, the processing can sometimes detect an error in the data, but the reliability of the processing is low.

More specifically, when communication by serial data is performed between the master chip and each slave chip, the slave chip determines an error condition of the serial data by parity check or the like, but depending on the bit position of an error, the error cannot be detected. Further, even when it is configured such that an interruption is caused to occur based on a parity error, if the parity error occurs frequently, the performance of a control section, such as a CPU, connected to the slave chip can be degraded due to the control section being interrupted each time the parity error occurs.

To overcome the problem, when the serial communication is executed between the master chip and each slave chip, to post the occurrence of an error to the master chip, there have been used a method of outputting an interruption signal from each slave chip to the master chip and a method of sending back the signal sent from the master chip to each slave chip as it is to the master chip.

In the case of the former method, an interruption signal is output from each slave chip to the master chip, and therefore it is necessary to provide as many interruption signal lines as the slave chips, which results in an increase in the number of signal lines and an increase in the number of pins.

In the case of the latter method, the status of the signal line transferring data from the master chip to the slave chips and the status of the signal line transferring data from the slave chip to the master chip are not the same. Therefore, an error occurs in the data being transferred from the master chip to the slave chip, and when the same data is sent back to the master chip, an error is caused by the influence of noise superposed on the data.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a data transfer method and a data transfer device, which are capable of transferring a predetermined amount of data in one transaction at only one time, and preventing the number of ports of a master chip and the number of signal lines connected between the master chip and slave chips from being increased.

To attain the above object, according to a first aspect of the present invention, there is provided a method of transferring data between a single master chip and a plurality of slave chips, comprising a connecting step of connecting the master chip and the slave chips that receive data transferred from the master chip, by a ring-like path, and a data transfer step of transferring the data from the master chip to the slave chips via the ring-like path.

With this configuration of the first aspect of the present invention, the master chip and the slave chips receiving data transferred from the master chip are connected to each other by the ring-like path, it is possible to transfer a predetermined amount of data in only one transaction, and prevent the number of ports of each slave chip and the number of signal lines connected to the slave chips from being increased.

Preferably, the slave chips have respective registers, and the data transfer step comprises transferring, as the data, information on writing in or reading from at least one of the registers, or resetting of at least one of the slave chips.

Preferably, the slave chips each receive the data transferred from the master chip, the data being handled as transactions in transaction units each formed by several bits, analyze each received transaction, and complete processing of the transaction by carrying out internal processing, such as writing or reading, on a register provided in the slave chip, or transferring the data as the transaction to a next one of the slave chips to finally transfer the data as the transaction to the master chip.

Preferably, the data transferred in the data transfer step comprises transactions, each of the transactions having at least one type of information on at least one of writing, reading, configuration, and resetting to be executed on at least one of the slave chips.

More preferably, the transactions include a command transaction containing information on a command, and data transaction containing information on data for a register, the command transaction and the data transaction being separately transferred to each of the slave chips.

Further preferably, the command transaction includes a first identifier for determining whether the transaction is for reading, writing, or configuration, a second identifier for determining whether the data is the command transaction or the data transaction, a third identifier for determining a data width of data of the data transaction, information on an address of the register for execution of the writing or the reading, and identifying information for discriminating between the slave chips.

Further preferably, the data transaction contains a fourth identifier whether the data transaction is for reading, writing, or configuration, a fifth identifier for determining whether the data is the command transaction or the data transaction, a sixth identifier for determining a data width of data of the data transaction, and information on data in the resister for execution of the writing or the reading.

Even more preferably, each of the slave chips is operable when receiving the command transaction, to read in the first identifier, the second identifier, the information on the address, and the identifying information, and perform processing on only a transaction to be processed, based on the first identifier, the second identifier, the address information, and the identifying information.

More preferably, when each of the slave chips receives a transaction for writing, at least one of the slave chips that is to process the transaction for writing, writes the data in the register provided therein, and transfers the transaction for writing to a next one of the slave chips in parallel with the writing, and the other slave chips than the slave chip that is to process the transaction for writing transfer the transaction for writing to a next one of the slave chips or the master chip without stopping the transfer of the transaction for writing therein.

With this configuration, it is possible to increase the transfer rate of transactions for writing.

Further preferably, the master chip is capable of issuing a next transaction before the transaction for writing issued to at least one of the slave chips returns to the master chip.

More preferably, the transactions include a transaction for reading data from the register provided in at least one of the slave chips that is to process the transaction, and the slave chips each receive a command transaction for reading contained in the transaction for reading, determine whether the received command transaction is to be processed by the slave chip, and transfer the command transaction for reading to a next one of the slave chips in parallel with the determination, and the next slave chip, if it is to process the received command transaction for reading, reads the data from the register provided therein, and transfers the data read from the register to a next one of the slave chips as a data transaction for reading, the command transaction for reading and the data transaction, which have been transferred, being finally transferred to the master chip, the master chip determining that processing of the transaction for reading is completed at a time point reception of the data transaction for reading is completed.

Further, the master chip does not issue a next transaction for reading until the master chip determines that processing of the transaction for reading is completed.

Even more preferably, the method comprises an issuing step of causing the master chip to issue a transaction for configuration to the slave chips, and an adding step of assigning respective numbers to the slave chips, by the transaction for configuration, and adding the numbers to information in the command transaction as the identifying information.

Still further preferably, the master chip is capable of performing configuration on each of the slave chips any number of times by issuing the transaction for configuration.

Preferably, the data transferred in the data transfer step comprises transactions, each of the transactions having a data width of a predetermined unit, the method comprising a determining step of determining whether a valid transaction has been transferred by managing all the transactions in units of the data width.

More preferably, the determining step comprises always placing a leading one data bit of each valid transaction in a high state, and always placing a leading one data bit of each invalid transaction in a low state, to determine a start point of the valid transaction in managing the transactions in units of the data width.

With this configuration, it is possible to easily determine the start point of each valid transaction.

Preferably, the leading one data bit is one bit of serial data.

To attain the above object, in a second aspect of the present invention, there is provided a method of transferring data and a synchronizing clock used for transfer of the data between a single master chip, and a first slave chip and a second slave chips, comprising a connecting step of connecting the master chip, the first slave chip that receives the data transferred from the master chip according to the synchronizing clock, and the second slave chip that receive the data transferred from the first slave chip according to the synchronizing clock, by a ring-like path, and a data transfer step of transferring the data from the master chip to the first and second slave chips via the ring-like path.

With this configuration of the second aspect of the present invention, it is possible to obtain the same advantageous effects as provided by the first aspect of the present invention.

Preferably, the first and second slave chips have respective registers, and the data transfer step comprises transferring as the data information on writing in or reading from at least one of the slave chips, or on resetting of at least one of the slave chips.

Preferably, the first and second slave chips receive the data transferred from the master chip, the data being all handled as transactions in units of transactions each formed by several bits, analyze each received transaction, and complete processing of the transaction by carrying out internal processing, such as writing, reading, or resetting, on a register provided in the slave chip, or transferring the data as the transaction to a next one of the slave chips to finally transfer the data as the transaction to the master chip.

Preferably, the method comprises a storage step of storing a transfer state of the data transferred from the master chip to the first and second slave chips in the first and second slave chips.

More preferably, the transfer state of the data represents reliability of a signal line for transferring the data, dependent on noise superposed on the data being transferred along the signal line depending on a transfer condition of the data.

More preferably, the method comprises a reading step of causing the master chip to read the transfer state of the data stored in the first and second slave chips from the master chip, by a method selected from the group consisting of a first method of reading the transfer state of the data stored in the first and second slave chips in a same manner as reading from the registers provided in the first and second slave chips, and a second method of outputting information on the transfer state, from the first and second slave chips, using a signal line other than the signal line connecting between the first and second slave chips.

More preferably, the method comprises a reading step of causing the master chip to read the transfer state of the data stored in the first and second slave chips from the master chip, and a transfer speed lowering step of lowering a speed of transfer of the data when the read transfer state of the data is in an error condition, to thereby improve the transfer state of the data.

Further preferably, the method comprises a reading step of causing the master chip to read the transfer state of the data stored in the first and second slave chips, and when the read transfer state of the data is in an error condition, in the data transfer step, it is judged that reliability of data during data transfer is low, and the data is transferred again.

With this configuration, it is possible to improve the reliability of data transfer.

More preferably, the transfer state of the data stored in the first and second slave chips is determined based a state of data synchronized with a leading edge of a synchronizing clock used for transfer of the data, and a state of data synchronized with a leading edge of a clock inverted from the synchronizing clock for the transfer of the data.

More preferably, the method comprises a selecting step of selecting whether to cause the master chip to read the transfer state of the data stored in the first and second slave chips, by a user controlling reading by the master chip.

Preferably, the data transferred in the data transfer step comprises transactions, each of the transactions having at least one type of information on at least one of writing, reading, configuration, and resetting to be executed on at least one of the first and second slave chips.

More preferably, the transactions include a command part containing information on a command, and a data part containing information on data for a register, and the command part and the data part being separately transferred to the first and second slave chips.

Further preferably, the command part includes a first identifier for determining whether the transaction is for reading, writing, configuration, or resetting, a second identifier for determining whether the data is the command part or the data part of the transaction, a third identifier for determining a data width of data of the data part, information on an address of the register for execution of the writing or the reading, and identifying information for discriminating between the first and second slave chips.

Further preferably, the data part includes a fourth identifier for determining whether the transaction is for reading, writing, configuration, or resetting, a fifth identifier for determining whether the data is the command part or the data part of the transaction, a sixth identifier for determining whether data width of data of the data part, and information on data for the register for execution of the writing or the reading.

Even more preferably, the first and second slave chips are each operable when receiving the command part of the transaction, to read in the first identifier, the second identifier, the information on the address, and the identifying information, and perform processing on only a transaction to be processed, based on the first identifier, the second identifier, the address information, and the identifying information.

More preferably, when the first and second slave chips each receive a transaction for writing, at least one of the slave chips that is to process the transaction for writing, writes the data in the register provided therein, and transfers the transaction for writing to a next one of the slave chips in parallel with the writing, and the other slave chip than the slave chip that is to process the transaction for writing transfers the transaction for writing to a next one of the first and second slave chips or the master chip without stopping the transfer of the transaction for writing thereat.

With this configuration, it is possible to increase the transfer rate of transactions for writing.

Further preferably, the master chip is capable of issuing a next transaction before the transaction for writing issued to at least one of the first and second slave chips returns to the master chip.

More preferably, the transactions include a transaction for reading data from the register provided in at least one of the slave chips that is to process the transaction, and wherein the first and second slave chips each receive a command part for reading contained in the transaction for reading, determine whether the received command part for reading is to be processed by the slave chip, and transfer the command part for reading to a next one of the slave chips in parallel with the determination, and the next slave chip, if it is to process the received transaction for reading reads the data from the register provided therein, and transfers the data read from the register to a next one of the slave chips as a data part of the transaction for reading, and wherein the command part for reading and the data part, which have been transferred, are finally transferred to the master chip, the master chip determining that processing of the transaction for reading is completed at a time point reception of the data part for reading is completed.

Further preferably, the master chip does not issue a next transaction for reading until the master chip determines that processing of the transaction for reading is completed.

Even more preferably, the method comprises an issuing step of causing the master chip to issue a transaction for configuration to the first and second slave chips, and an adding step of assigning respective numbers to the first and slave chips, by the transaction for configuration, and adding the numbers to information in the command part as the identifying information.

Still further, the master chip is capable of performing configuration on each of the first and second slave chips any number of times by issuing the transaction for configuration.

Even more preferably, the method comprises a selecting step of causing the master chip to select one of the first and second slave chips which is to be reset, using the identifier information added in the transaction for configuration, and a resetting step of causing the master chip to reset only the slave chip to be reset, by adding the identifier information together with an identifier for identifying the transaction for resetting, to the command part of the transaction.

Preferably, the data transferred in the data transfer step comprises transactions, each of the transactions having a data width of a predetermined unit, the method comprising a determining step of determining whether a valid transaction has been transferred by managing all the transactions in units of the data width.

More preferably, the determining step comprises always placing a leading one data bit of each valid transaction in a high state, and always placing a leading one data bit of each invalid transaction in a low state, to determine a start point of the valid transaction in managing the transactions in units of the data width.

Further preferably, the leading one data bit is one bit of serial data.

To attain the above object, in a third aspect of the present invention, there is provided a data transfer device comprising a single master chip, a plurality of slave chips that receive data transferred from the master chip, a connecting path that connects the master chip and the slave chips in a ring, and a data transfer unit that transfers the data from the master chip to the slave chips via the connecting path.

To attain the above object, in a fourth aspect of the present invention, there is provided a data transfer device comprising a single master chip, a first slave chip that receives data transferred from the master chip according to a synchronizing clock transferred from the master chip, a second slave chip that receives the data transferred from the first slave chip according to the synchronizing clock, a connecting path that connects the master chip, the first slave chip, and the second slave chip in a ring, and a data transfer unit that transfers data from the master chip to the first and second slave chips the connecting path.

The above and other objects, features, and advantages of the invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the arrangement of a system including a data transfer device according to a first embodiment of the present invention;

FIG. 2 is a block diagram showing the whole arrangement of an image input/output system applied to the system in FIG. 1;

FIG. 3 is a side cross-sectional view of the internal construction of a reader section and a printer section of the image input/output system;

FIG. 4 is a block diagram showing the arrangement of a reader image preprocessing section of the image input/output system;

FIG. 5 is a block diagram schematically showing the internal arrangement of a controller unit of the image input/output system;

FIG. 6 is a block diagram showing in detail the internal arrangement of the controller unit of the image input/output system;

FIG. 7 is a diagram showing the configuration for serial data transfer between a plurality of chips included in the data transfer device;

FIG. 8 is a diagram useful in explaining the data structure of a transaction as serial data handled by a data transfer device according to a second embodiment of the present invention and a data transfer device according to a third embodiment of the present invention;

FIG. 9 is a diagram useful in explaining a reset operation by the data transfer devices according to the second and third embodiments; and

FIG. 10 is a diagram useful in explaining the reset operation by the data transfer device data transfer devices according to the second and third embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described in detail with reference to the drawings showing preferred embodiments thereof. In the drawings, elements and parts which are identical throughout the views are designated by identical reference numerals, and duplicate description thereof is omitted.

In the following, the embodiments of the present invention will be described with reference to the drawings.

First of all, a description will be given of a first embodiment of the present invention with reference to FIGS. 1 to 7.

In the present embodiment, to solve the above-described problems with the prior art, two or more slave chips are connected in a ring to a single master chip by two signal lines, i.e. a serial data signal line and a transfer synchronizing clock line. It is configured such that on the serial data signal line information on register data is transferred and information on serial data on the serial data signal line is sequentially transferred from one slave chip to another, to finally return to the master chip.

Similarly to the serial data signal line, it is configured such that on the transfer synchronizing clock line a clock signal transmitted from the master chip is sequentially transferred from one slave chip to another, to finally return to the master chip.

The master chip and the slave chips receive and transmit the serial data on the serial data signal line in a manner synchronized with the clock signal on the transfer synchronizing clock line.

The master chip handles all serial data transferred to the slave chips in units of unitary transactions each formed by several bits, and determines on a unitary transaction-by-unitary transaction basis whether or not each serial data is valid.

In transfer of serial data in units of unitary transactions, to determine the start point of each valid unitary transaction, the master chip always places only the leading one bit thereof in a H (High) state, but always places the first bit of each invalid unitary transaction in a L (Low) state. This enables the start point of each valid unitary transaction to be determined, and when serial data has been transferred by the number of bits to be handled as one unit of a unitary transaction, it is determined that transfer of the unitary transaction is completed.

When a bit error occurs in a unitary transaction during transfer of serial data in units of unitary transactions between the master chip and the slave chips, and the unitary transaction comes to contain improper data information, error control is executed in each of the slave chips so as to prevent the improper data information from being written in a register or the like of the slave chip.

In the error control, the master chip adds a parity bit to data in each unitary transaction, and then transfers the data to the slave chips. Upon reception of each unitary transaction data, the slave chips perform a parity check on the parity bit to determine whether or not the parity bit added to the data by the master chip matches the parity bit of the received data, thereby detecting an erroneous transaction.

In the error control, parity checking is performed not only by each of the slave chips, but also by the master chip on the serial data returned from the slave chips through transfer along the ring-like signal line on a unitary transaction-by-unitary transaction basis.

In the error control, when a slave chip detects an erroneous transaction, the slave chip recognizes that improper data information exists in the transaction, and immediately transfers the transaction data to the next slave chip or the master chip without writing or reading the transaction data in its register or the like.

In the error control, when the master chip detects an erroneous transaction, the master chip recognizes that improper data information exists in the transaction, and displays an error message concerning the transaction data to provide an external notification that transfer of the transaction has failed.

Serial data is divided into command data for discriminating the type of transfer, and data to be transferred, and the former is handled as a transaction of command data (hereinafter referred to as the command transaction or the command part), and the latter as a transaction of data (hereinafter referred to as the data transaction or the data part).

Further, to identify each of the slave chips, the master chip issues a configuration transaction to the slave chips to thereby assign a unique number to each of the slave chips and uses this number as a chip ID (identifier) for identifying the associated slave chip.

The command transaction includes an identifier for discrimination between the data transaction and the command transaction (hereinafter referred to as the C/D identifier), an identifier for discrimination between a write transaction and a read transaction (hereinafter referred to as the W/R identifier), an identifier for identifying the transfer width of data (hereinafter referred to as the bit mode), the identifier as the chip ID for identifying a slave chip (hereinafter referred to as the chip ID), and information on a read or write address.

The data transaction includes the C/D identifier, the W/R identifier, Bit Mode, chip ID and information on data to be read or written.

To write data in a predetermined register within a specific one of the slave chips, the master chip issues a command transaction to the specific slave chip, and then a data transaction in succession thereto.

In this case, the command transaction includes the C/D identifier which is activated (it is assumed that the C/D identifier is, for example, activated during a command transaction, and deactivated during the data transaction), the W/R identifier which is activated (it is assumed that the W/R identifier is, for example, activated during a write transaction, and deactivated during a read transaction), the bit mode which is set to predetermined data width information, the chip ID which is set to a predetermined value (a configuration value of the intended slave chip), and information on the set address value of the predetermined register.

The data transaction includes the C/D identifier which is deactivated, the W/R identifier which is activated, the bit mode which is set to the predetermined data width information, and information on the set value of the data to be written in the predetermined register.

In this case, even before the write transaction issued by the master chip returns to the master chip via the slave chips, the master chip issues write transactions successively.

Therefore, insofar as a write transaction is concerned, the master chip does not check from the write transaction whether or not data has been written in the intended one of the slave chips. The master chip having received a transaction sent from the slave chips through the ring-like signal line only determines whether or not any parity error has occurred in the transaction (any one of the unitary transactions thereof).

On the other hand, each of the slave chips receives the transactions transferred from the master chip or the immediately preceding slave chip, and reads the identifiers and the information on data configuration from the transactions to determine whether or not each of the received transactions should be processed. If the received transaction should be processed, the data is written in the register of the slave chip. Transactions which are not to be processed by the slave chip are sequentially passed to the next slave chip or the master chip.

This enables the master chip to write data in the register of a slave chip into which data is desired to be written.

To read data in a register of a specific one of the slave chips, the master chip issues a command transaction to the specific slave chip.

In this case, the command transaction includes the C/D identifier which is activated, the W/R identifier which is deactivated, the bit mode which is set to predetermined data width information, the chip ID which is set to a predetermined value (a configuration value of the intended slave chip), and information on the set address value of the predetermined register.

In this case, before the read command transaction issued by the master chip returns to the master chip via the slave chips, and the master chip completes reception of a read data transaction issued by the slave chip which has carried out processing of the read command transaction, the master chip does not issue the next transaction.

With regard to a read transaction operation, while a read command transaction transferred from the master chip is received by each slave chip and transferred from the slave chip to the next slave chip or the master chip, a read data transaction is issued by one of the slave chips which has carried out processing of the read command transaction.

After having received the read command transaction, the master chip receives the read data transaction. The master chip is held in a wait state for receiving the read data transaction until completion of reception thereof. After completing the reception of the read data transaction, the master chip starts a transfer operation for the next transaction.

Each slave chip receives each transaction transferred from the master chip or the immediately preceding slave chip, and reads the identifiers and the information on data configuration from the transaction to determine whether or not the received transaction should be processed. According to the transaction which should be processed, the slave chip reads data from its register.

The slave chip that determines itself to process the transaction transfers the read data transaction based on the data read from the register.

The slave chip that determines itself to process the transaction adds the identifiers and information on data configuration required for issuing the read data transaction to the data read from the register, to thereby issue the read data transaction.

When a read command transaction transferred to a slave chip is not one to be processed by the slave chip, the slave chip passes the read command transaction to the next slave chip without processing the same.

After the master chip transmits a read command transaction to the slave chips, it receives the read command transaction having being transferred through the slave chips, and then receives a read data transaction. Therefore, when receiving the read command transaction, the master chip can determine, based on the chip ID, a slave chip that has performed data reading, and determine, based on address information, the address of the register from which data has been read. When receiving the read data transaction, the master chip can determine the data values of the register from which the data have been read, based on the information on the read data transaction.

This enables the master chip to read data from the register of a slave chip from which data is desired to be read.

In the following, a detailed description will be given of the present embodiment with reference to the drawings.

FIG. 1 is a block diagram showing the arrangement of a data processing system including a data transfer device according to the present embodiment. In FIG. 1, reference numeral 100 designates a first image input/output system, 101 a second image input/output system, 102 a first database server, 103 a database client, 104 an electronic mail client, 105 a first electronic mail server, 106 a first WWW server, 107 a DNS server, 108 a router, 109 a LAN (local area network), 110 a second database server, 111 a second WWW server, 112 a second electronic mail server, 113 the Internet/Intranet, 114 a facsimile (FAX), and 115 a PSTN (public switched telephone network) or an ISDN (integrated service digital network).

The first image input/output system 100, the first database server 102, the database client 103, the electronic mail client 104, the first electronic mail server 105, the first WWW server 106, the DNS server 107, and the router 108 are connected to the LAN 109.

The second image input/output system 101, the second database server 110, the second WWW server 111, and the second electronic mail server 112 are connected to the Internet/Intranet 113. Further, the router 108 is connected to the Internet/Intranet 113.

FIG. 2 is a block diagram showing the arrangement of the image input/output system 100 (101). As shown in FIG. 2, the image input/output system 100 (101) is comprised of a reader section R, a printer section P, a controller unit 200, an operating section 201, and a recording section (CD-ROM) 202. The reader section R, the printer section P, the operating section 201, and the recording section 202 are connected to the controller unit 200.

When execution of a print job is instructed from any of the servers 102, 105, 106, 107, 110, 111, and 112, the print job and image data are delivered to the image input/output system 100 (101) via the LAN 109. The image data can be printed out by the printer section P of the image input/output system 100 (101), or it is also possible to send images read by the reader section R onto the LAN 109.

Further, it is possible to transmit images read by the reader section R to the PSTN or ISDN 115 by FAX transmission means, not shown, as well as to print out images received from the PSTN or ISDN 115, by the printer section P.

The reader section R optically reads an original image and converts the same into image data. The reader section R is comprised of an original feeder unit (DF unit) 203 equipped with the function of conveying original sheets, and a scanner unit 204 equipped with the function of reading originals.

The printer section P conveys recording sheets and prints image data as visible images on the recording sheets, followed by discharging the sheets out of the apparatus. The printer section P is comprised of a marking unit 205 equipped with the function of transferring and fixing image data onto recording sheets, a sheet feeder unit 206 having a plurality of types of recording sheet cassettes, and a discharge unit 207 equipped with the functions of sorting and stapling printed recording sheets and then discharging these out of the apparatus.

The controller unit 200 is electrically connected to the reader section R and the printer section P. Further, the controller unit 200 is connected to the LAN 109, the PSTN or ISDN 115, and a network, such as the Internet/Intranet 113. The controller unit 200 provides the copy function of controlling the reader section R to read original image data and controlling the printer section P to output print data and image data onto recording sheets, the printer function of receiving a control signal through an interface for short-distance radio communication to control the printer section P to output print data and image data onto recording sheets, for execution of a printer job from the LAN 109, the printer function of converting code data received via the LAN 109 into image data and outputting the image data to the printer section P, and the scanner function of converting image data read by the reader section R into code data and transmitting the code data to a PC (personal computer) or the like via the LAN 109.

The operating section 201 is electrically connected to the controller unit 200 and implemented e.g. by a liquid crystal touch panel. The operating section 201 provides a user interface for operating the image input/output system 100 (101).

The database servers 102 and 110 manage, as a database, binary image data and multi-valued image data read by the image input/output systems 100 and 101.

FIG. 3 is a side cross-sectional view schematically showing the internal construction of the reader section R and the printer section P. In FIG. 3, the original feeder unit 203 of the reader section R sequentially feeds originals one by one from the leading page onto a platen glass 300, and discharges each original from the platen glass 300 after completion of an original reading operation. When an original is fed onto the platen glass 300, a lamp 301 is turned on, and movement of an optical unit 302 is started, for exposure and scanning of the original. Reflected light from the exposed and scanned original is guided to a CCD image sensor (hereinafter simply referred to as “the CCD”) 307 by mirrors 303, 304, and 305 and a lens 306. Thus, an image on the scanned original is read by the CCD 307.

A reader image processing section 308 carries out predetermined processing on image data output from the CCD 307, and outputs the processed image data to the controller unit 200 (see FIG. 2).

A printer image processing section 309 outputs image signals sent from the controller unit 200 to a laser driver 310.

The laser driver 310 of the printer section P drives laser light-emitting sections 311, 312, 313, and 314 to cause the laser light-emitting sections 311 to 314 to emit laser light according to image data output from the printer image processing section 309. The laser light is irradiated onto photosensitive drums 327, 328, 329, and 330 by mirrors 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, and 326, whereby latent images are formed on the respective photosensitive drums 327 to 330 according to the laser light. Reference numerals 331, 332, 333 and 334 designate developing devices for developing the latent images by black (Bk) toner, yellow (Y) toner, cyan (C) toner, and magenta (M) toner, respectively. After development by the developing devices 331 to 334, the toner images of the respective colors are transferred onto a recording sheet for full-color printout.

A recording sheet fed from one of sheet cassettes 335 and 336 and a manual feed tray 337 of the sheet feeder unit 206 in timing synchronous with the start of irradiation of the laser light passes through a registration roller pair 338 to be attracted onto a transfer belt 339 and conveyed by the transfer belt 339. Then, a developer attached to the photosensitive drums 327 to 330 is transferred onto the recording sheet. The recording sheet having the developer transferred thereon is conveyed to a fixing section 340, and the developer is fixed onto the recording sheet by heat and pressure of the fixing section 340. The recording sheet having passed through the fixing section 340 is discharged by a discharge roller pair 341 onto a discharge tray 342. The discharge unit 207 bundles and sorts discharged recording sheets, and staples the sorted recording sheets.

When a double-sided recording mode is set, the recording sheet is conveyed to the discharge roller pair 341, and then the direction of rotation of the discharge roller pair 341 is reversed such that the recording sheet is guided to a re-feeding conveying path 344 by a flapper 343. The recording sheet guided to the re-feeding conveying path 344 is fed to the transfer belt 339 in the above-mentioned timing.

FIG. 4 is a block diagram showing details of the arrangement of the reader image processing section 308.

In the reader image processing section 308, the CCD 307 reads an original on the platen glass 300 by light reflected therefrom, and converts the reflected light into electric signals (if the CCD 307 is a color sensor, R, G, and B color filters may be mounted on one CCD line in an inline form in the order of R, G, and B, or R, G, and B filters may be arranged on three CCD lines side by side. Alternatively, on-chip filters may be used, or filters may be formed separately from the CCD). Then, the electric signals (analog image signals) are input to the reader image processing section 308. A clamp & Amp. & S/H & A/D section 401 sample-holds (S/H) the analog image signals, clamps the dark level of each analog image signal to a reference potential, amplifies the signal to a predetermined level (the processing order is not limited to that represented by the section name of the clamp & Amp. & S/H & A/D section 401), and A/D converts the processed analog image signals into R, G, and B digital signals each consisting e.g. of eight bits. The R, G, and B digital signals are subjected to shading correction and black correction by a shading section 402, followed by being output to the controller unit 200.

Next, a description will be given of the functions of the controller unit 200 with reference to FIGS. 5 and 6.

FIG. 5 is a block diagram showing the internal arrangement of the controller unit 200, and FIG. 6 is a block diagram showing the internal arrangement of a system controller 500.

In FIG. 5, reference symbol P designates the printer section, reference symbol R the reader section, reference numeral 308 the reader image processing section, 309 the printer image processing section, 500 the system controller, 501 an image processing section, 502 to 505 memories, 506 a serial data-receiving port, 507 a synchronizing clock port for serial data reception, 508 a serial data-transmitting port, 509 a synchronizing clock port for serial data transmission, 510 a serial data signal line, and 511 a synchronizing clock signal line.

The system controller 500 controls the overall operation of the controller unit 200, and is formed by a single chip. The reader image processing section 308, the printer image processing section 309, and the image processing section 501 are formed by respective different chips, and connected to the system controller 500. These sections 308, 309 and 501 transmit and receive image data and control signals to execute data processing.

Each of the reader image processing section 308, the printer image processing section 309, the image processing section 501, and the system controller 500 is equipped with the function of transmitting and receiving one-bit serial data for register setting and has chip ports for transmission and reception.

The chip ports function as the serial data-receiving port 506, the synchronizing clock port 507 for serial data reception, the serial data-transmitting port 508, and the synchronizing clock port 509 for serial data transmission.

The ports for serial data of each of the system controller 500, the printer image processing section 309, the image processing section 501, and the reader image processing section 308 are connected in a ring by signal lines, i.e. the serial data signal line 510 and the synchronizing clock signal line 511, which are paired to interconnect the chips.

The system controller 500 is the master chip for transfer of serial data, while each of the printer image processing section 309, the image processing section 501, and the reader image processing section 308 is a slave chip for transfer serial data.

In FIG. 6, reference numeral 600 designates an operating section, 601 a user registration code storage section, 602 a radio communication interface, 200 the controller unit, and 500 the system controller.

The system controller 500 has an operating section interface 2006, a user registration code interface 2009, and a radio communication interface 2008.

A master interface 2147 and a slave interface 2148 within the system controller 500 provide interface for transmission/reception of the serial data to/from the printer image processing section 309, the image processing section 501, and the reader image processing section 308. The master interface 2147 is connected to the printer image processing section 309 by the serial data signal line 510 and the synchronizing clock signal line 511, and also connected to a system bus bridge 2007. On the other hand, the slave interface 2148 is connected to the reader image processing section 308 by the serial data signal line 510 and the synchronizing clock signal line 511, and also connected to the system bus bridge 2007.

The memories 502 to 505 appearing in FIG. 5 are provided for controlling the delay amount of image data on the respective photosensitive drums for a printer in the printer section P. The memories 502 to 505 correspond to the respective color components (Y, M, C, and K), and are capable of storing several pages of image data of the respective color components. In the present embodiment, each of the memories is implemented by a SDRAM.

The image processing section 501 is an image processing block for carrying out image processing for the printer and the reader.

The controller unit 200 in FIG. 6 is connected not only to the reader section R as an image input device, the reader processing section 308 (see FIG. 3), and the printer section P as an image output device, but also to networks, such as a LAN 2011 and a public line (WAN) 2051, for input/output of image information and device information and image development of PDL data.

A CPU 2001 is a processor for controlling the overall operation of the system. The CPU 2001 is connected to a CPU bus 2126, and further to the system bus bridge 2007 via the CPU bus 2126.

The operating section interface 2006 is an interface section for providing interface with the operating section 600, to output image data to be displayed on the operating section 600 to the operating section 600.

A RAM (random access memory) 2002 and a ROM (read-only memory) 2003 are provided as memories used by the CPU 2001 for storing processed data. Access to the RAM 2002 and the ROM 2003 is controlled by a RAM controller 2124 and a ROM controller 2125, respectively.

Reference numeral 2004 designates a hard disk drive (HDD) as an external storage device. The HDD 2004 stores system software, information on a print job, and image data. Access to the HDD 2004 is controlled by a disk controller 2144 using a PCI bus 2143 via a general-purpose bus interface 2142.

A LAN controller 2010 is connected to the LAN 2011 (corresponding to the LAN 109 in FIG. 1) via a MAC circuit 2145 and a PHY/PMD circuit 2145, for input/output of information.

Reference numeral 2127 designates an I/O bus, 2050 a modem, and 2060 a rendering section.

The controller unit 200 is configured to have a control function for performing serial data transfer using the serial data signal line 510 and the synchronizing clock signal line 511 each connecting the system controller 500, the printer image processing section 309, the image processing section 501, and the reader image processing section 308 to one another in a ring.

FIG. 7 is a diagram useful in explaining the configuration for serial data transfer between the chips.

As shown in FIG. 7, registers 710, 711, and 712 are provided within the printer image processing section 309, the image processing section 501, and the reader image processing section 308, respectively. The system controller 500 can perform read/write access to each of the registers 710 to 712 for setting/resetting various parameters, using the serial data signal line 510 and the synchronizing clock signal line 511.

Serial data transmitted via the master interface 2147 of the system controller 500 is sent over the serial data signal line 510 to a slave interface (1) 701 of the printer image processing section 309 in timing synchronous with a synchronizing clock signal flowing on the synchronizing clock signal line 511, and then received by the printer image processing section 309. Thereafter, the serial data is sent via a master interface (1) 702 of the printer image processing section 309 over the serial data signal line 510 to a slave interface (2) 703 of the image processing section 501 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

Similarly, the serial data is received via the slave interface (2) 703 of the image processing section 501 and then sent via a master interface (2) 704 of the image processing section 501 over the serial data signal line 510 to a slave interface (3) 705 of the reader image processing section 308 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

Similarly, the serial data is received via the slave interface (3) 705 of the reader image processing section 308 and then sent via a master interface (3) 706 of the reader image processing section 308 over the serial data signal line 510 to the slave interface 2148 of the system controller 500 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The master interface (1) 702 and the slave interface (1) 701 are connected to an internal bus 707 within the printer image processing section 309, and the received or transmitted serial data is transferred via the internal bus 707. Similarly, the master interface (2) 704 and the slave interface (2) 703 are connected to an internal bus 708 within the image processing section 501, and the master interface (3) 706 and the slave interface (3) 705 are connected to an internal bus 709 within the reader image processing section 308, whereby the received or transmitted serial data is transferred via the internal bus 708 and the internal bus 709.

The internal buses 707, 708, and 709 are provided for read/write access to the respective registers 710, 711, and 712, and the registers 710 to 712 are accessed via the internal buses 707 to 709, respectively.

When a command for writing in a register is sent from the CPU 2001 of the system controller 500 to the system bus bridge 2007 via the CPU bus 2126, and the address of the register intended for writing is associated with one of the printer image processing section 309, the image processing section 501, and the reader image processing section 308, the write command is sent from the system bus bridge 2007 to the master interface 2147.

Upon receipt of the write command, the master interface 2147 prepares a write command transaction based on the chip ID and address information of a slave chip associated with the write command, and prepares a write data transaction based on information on data to be written. The write command transaction and the write data transaction prepared by the master interface 2147 are sent as serial data from the master interface 2147 to the printer image processing section 309 via the serial data signal line 510 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The respective slave chips of the printer image processing section 309, the image processing section 501, and the reader image processing section 308, receive the write command transaction and the write data transaction. When the write address of the write command transaction is associated with the slave chip of the printer image processing section 309, the slave interface (1) 701 permits write access to a register in the printer image processing section 309 via the internal bus 707 for the data in the data transaction. When the write address of the write command transaction is associated with the slave chip of the image processing section 501, the slave interface (2) 703 permits write access to a register in the image processing section 501 via the internal bus 708 for the data in the data transaction, and when the write address of the write command transaction is associated with the slave chip of the reader image processing section 308, the slave interface (3) 705 permits write access to a register in the reader image processing section 308 via the internal bus 709 for the data in the data transaction.

At the same time, each of the master interface (1) 702, the master interface (2) 704, and the master interface (3) 706 of the respective slave chips of the printer image processing section 309, the image processing section 501, and the reader image processing section 308 transmits the serial data received via the associated one of the slave interface (1) 701, the slave interface (2) 703, and the slave interface (3) 705 onto the serial data signal line 510 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

When receiving the serial data from the master interface (3) 706 of the reader image processing section 308, the slave interface 2148 checks whether or not the serial data has a parity error. If no parity error is detected, it is judged that the processing for the write transaction is completed.

On the other hand, if a parity error is detected in the serial data received by the slave interface 2148, it is judged that an error has occurred in the transaction, and an error code is issued to the CPU 2001 for error processing.

When a command for a read operation (hereinafter referred to as the read command) of a register within one of the printer image processing section 309, the image processing section 501, and the reader image processing section 308 is sent from the CPU 2001 of the system controller 500 to the system bus bridge 2007 via the CPU bus 2126 and the address of the register intended for reading is associated with one of the printer image processing section 309, the image processing section 501, and the reader image processing section 308, the read command is sent from the system bus bridge 2007 to the master interface 2147.

Upon receipt of the read command, the master interface 2147 prepares a read command transaction based on the chip ID and address information of a slave chip associated with the read command. The read command transaction prepared by the master interface 2147 is sent as serial data from the master interface 2147 to the printer image processing section 309 via the serial data signal line 510 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The slave chips of the printer image processing section 309, the image processing section 501, and the reader image processing section 308 receive the read command transaction. When the read address of the read command transaction is associated with the printer image processing section 309, the slave interface (1) 701 permits read access to the register in the printer image processing section 309 via the internal bus 707. When the read address of the read command transaction is associated with the image processing section 501, the slave interface (2) 703 permits read access to the register in the image processing section 501 via the internal bus 708, and when the read address of the read command transaction is associated with the reader image processing section 308, the slave interface (3) 705 permits read access to the register in the reader image processing section 308 via the internal bus 709.

At the same time, each of the master interface (1) 702, the master interface (2) 704, and the master interface (3) 706 of the respective slave chips of the printer image processing section 309, the image processing section 501, and the reader image processing section 308 transmits the serial data received via the associated one of the slave interface (1) 701, the slave interface (2) 703, and the slave interface (3) 705 onto the serial data signal line 510 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

Upon receipt of the read command transaction, the master interface (1) 702, the master interface (2) 704, or the master interface (3) 706, i.e. the master interface of the slave chip associated with the read address receives the read data from an associated one of the internal buses 707, 708, and 709, and prepares a read data transaction, and then converts the read data transaction into serial data, followed by transmitting the serial data onto the serial data signal line 510 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The slave interface 2148 receives the read command transaction of the serial data transmitted from the master interface (3) 706 of the reader image processing section 308, and then receives the read data transaction.

Upon receipt of the read data transaction, the slave interface 2148 acquires information on the read data of the necessary register from the received read data transaction, and delivers the read data of the register to the CPU 2001 of the system controller 500 via the system bus bridge 2007 and the CPU bus 2126.

The slave interface 2148 checks whether or not the read command transaction and the read data transaction have a parity error. If no parity error is detected, it is judged that the processing for the read transaction is completed.

On the other hand, if a parity error is detected in the serial data received by the slave interface 2148, it is judged that an error has occurred in the transaction, and an error code is issued to the CPU 2001 for error processing.

As described above, according to the present embodiment, a master chip and a plurality of slave chips which receive data transferred from the master chip are connected in a ring, for transmission and reception of serial data between the chips. As a result, the single master chip can send serial data to the slave chips in one transaction.

Each of the slave chips receives the serial data and analyzes the received serial data to carry out internal processing, i.e. writing in or reading from a register provided in the slave chip, or transfer the serial data to the next slave chip until the serial data is finally transferred to the master chip. As a result, serial data in units of several bits can be transferred from the single master chip to the slave chips in only one transaction.

Further, each of the master chip and the slave chips is required to have only two ports, i.e. a port for serial data and a synchronizing clock signal port for serial data transfer, as interface ports. As a result, it is possible to reduce the number of ports in each chip.

Furthermore, even when the number of the slave chips is increased, the number of the ports in each of the chips is not changed, and the chips are connected in a ring by signal lines (the serial data signal line 510 and the synchronizing clock signal line 511). As a result, it is possible to prevent an increase in the number of signal lines.

Next, a description will be given of a second embodiment of the present invention with reference to FIGS. 8 to 10.

In the present embodiment, similarly to the first embodiment, to solve the problems with the prior art, two or more slave chips are connected in a ring to a single master chip by two signal lines, i.e. a serial data signal line and a transfer synchronizing clock line such that register data to be transferred can be sent as serial data along the serial data signal line and transferred from one slave chip to another, to finally return to the master chip.

Similarly to the serial data transferred on the serial data line, the synchronizing clock signal flowing on the transfer synchronizing clock line can be transferred from one slave chip to another, to finally return to the master chip.

The master chip and the slave chips receive and transmit the serial data on the serial data signal line in timing synchronous with the synchronizing clock signal on the transfer synchronizing clock line.

The serial data is transferred from the master chip to the slave chips, whereby the master chip controls each of the slave chips to read from or write in a resister of the slave chip.

To write in a register, the master chip issues a write transaction, whereby data is written only in a register of a predetermined slave chip.

Similarly, to read from a register, the master chip issues a read transaction, whereby only data in a register of a predetermined slave chip is read.

A latch for storing a transfer state of serial data is provided in each of the slave chips so that when an error occurs in serial data being transferred, the master chip (CPU thereof) can grasp an error condition of the slave chip, and the slave chip constantly monitors the state of serial data transferred thereto so as to store the error condition in the latch when an error occurs due to noise.

The transfer state of serial data is determined based on a first flip-flop (hereinafter referred to as FF) that synchronizes serial data with the synchronizing clock signal and a second FF that synchronizes serial data with a clock signal obtained by inverting the synchronizing clock signal, both FFs being provided in the first serial data-receiving stage of each slave chip. More specifically, the transfer state of serial data is determined based on a state of the serial data synchronized by the first FF with the leading edge of each clock pulse of the synchronizing clock signal and a state of the serial data synchronized by the second FF with the leading edge of each clock pulse of the clock signal obtained by inverting the synchronizing clock signal.

A XOR (exclusive OR) of the serial data synchronized by the first FF with the synchronizing clock signal and the serial data synchronized by the second FF with the clock signal obtained by inverting the synchronizing clock signal is determined, and the output information of the XOR is stored as an error condition by the latch.

The error condition differs between the case where serial data is not affected by noise and the case where the influence of noise is reflected on serial data, causing a shot noise not longer in duration than a half clock period.

In short, it is possible to use the error condition to discriminate between the case where an error has occurred in serial data due to the influence of noise and the case where serial data is normal.

When the master chip (CPU thereof) needs to determine the error condition of a slave chip, the associated latch storing the error condition is accessed. The slave chip whose latch is accessed converts information on the error condition (hereinafter referred to as “error information”) into serial data and then transfers the serial data to the master chip or another slave chip. That is, error information is read by the same flow control method as employed in the control of reading from a register or a method of outputting error information from the slave chip that executes reading of the error information, using a signal line for connection to the other slave chips than the slave chip that executes the reading.

The master chip (CPU thereof) reads the error information from a predetermined slave chip and then determines whether or not the transfer state was in an error condition. If the transfer state was in an error condition, the master chip determines that serial data could not be normally transferred to the predetermined slave chip, and transfers the serial data again to the predetermined slave chip or optimizes the frequency of the synchronizing clock signal to be transferred, by lowering the frequency of the synchronizing clock signal to be transferred, for reduction of the influence of noise generated during transfer of serial data, so as to prevent an error from occurring in the serial data during transfer due to the influence of noise.

In the following, a description will be given of a transfer format of serial data, transactions, an operation in each of the transactions, and processing in response to occurrence of an error in the serial data during transfer, in the present embodiment.

The master chip handles all serial data transferred to the slave chips in units of unitary transactions each formed by several bits, and determines on a unitary transaction-by-unitary transaction basis whether or not each serial data is valid.

In transfer of serial data in units of unitary transactions, to determine the start point of each valid unitary transaction, the master chip always places only the leading one bit thereof in a H (High) state, and always places the first bit of each invalid unitary transaction in a L (Low) state. This enables the start point of each valid unitary transaction to be determined, and when serial data has been transferred by the number of bits to be handled as one unit of a unitary transaction, it is determined that transfer of the transaction is completed.

Serial data is divided into command data for discriminating the type of transfer and data to be transferred, and the former is handled as a transaction of command data (hereinafter referred to as the command transaction or the command part), and the latter as a transaction of data (hereinafter referred to as the data transaction or the data part).

Further, to identify each of the slave chips, the master chip issues a configuration transaction to the slave chips to thereby assign a unique number to each of the slave chips and uses this number as a chip ID (identifier) for identifying the associated slave chip.

The command part includes an identifier for discrimination between the data part and the command part (hereinafter referred to as the C/D identifier), an identifier for discrimination between a write transaction and a read transaction (hereinafter referred to as the W/R identifier), an identifier for identifying the transfer width of data (hereinafter referred to as the bit mode), the identifier as the chip ID for identifying a slave chip (hereinafter referred to as the chip ID), and information on a read or write address.

The data part includes the C/D identifier, the W/R identifier, Bit Mode, the chip ID and information on data to be read or written.

To issue transactions to the slave chips, after the system is reset, first, the master chip issues the configuration transaction to the slave chips to assign respective chip IDs thereto.

The configuration transaction has only the command part, and the command part includes the C/D identifier which is activated (it is assumed that the C/D identifier is, for example, activated when the transaction is the command part, and deactivated when the same is the data part), a type identifier (it is assumed that, for example, the type identifier is set to 00 when the transaction is a configuration transaction), and the chip ID (it is assumed that the chip ID is, for example, set to 0 when the transaction is issued from the master chip).

The master chip does not issue the next transaction until the configuration transaction issued by the master chip returns to the master chip via the slave chips and the master chip completes the reception thereof.

Upon reception of the configuration transaction, each slave chip adds 1 to the value of the chip ID in the configuration transaction and then stores the value in a chip ID data register provided in the slave chip.

Then, each slave chip puts the value stored in the chip ID data register thereof into the configuration transaction to be forwarded to the next slave chip or the master chip, and delivers the resulting configuration transaction.

The configuration transaction is passed from one slave chip to another, to finally return to the master chip. The master chip determines, based on the value of the chip ID in the received configuration transaction, how many slave chips are connected in a ring. When the value of the chip ID is equal to N, it means that N slave chips are connected in a ring.

To write data in a predetermined register of a specific one of the slave chips, the master chip issues a command part to the slave chip, and then issues a data part in succession thereto.

In this case, the command part includes the C/D identifier which is activated, the W/R identifier which is activated, the bit mode which is set to predetermined data width information, the chip ID which is set to a predetermined value (configuration value of the intended slave chip), and information on the set address value of the predetermined register.

The data part includes the C/D identifier which is deactivated, the W/R identifier which is activated, the bit mode which is set to the predetermined data width information, the chip ID, and information on the set value of the data to be written in the predetermined register.

In this case, even before the write transaction issued by the master chip returns to the master chip via the slave chips, the master chip issues write transactions successively.

Therefore, insofar as a write transaction is concerned, the master chip cannot check from the write transaction whether or not data was written in any one of the slave chips. The master chip having received a transaction sent from the slave chips through the ring-like signal line only determines whether or not there was any parity error in the received transaction (any one of the unitary transactions thereof).

On the other hand, each of the slave chips receives the transactions transferred from the master chip or the immediately preceding slave chip, and reads the identifiers and the information on data configuration from the transactions to determine whether or not each of the received transactions should be processed. If the received transaction should be processed, the data is written in the register of the slave chip. Transactions which are not to be processed by the slave chip are sequentially passed to the next slave chip or the master chip.

This enables the master chip to write data in the register of a slave chip into which data is desired to be written.

To read data in a register of a specific one of the slave chips, the master chip issues only a command part to the specific slave chip.

In this case, the command part includes the C/D identifier which is activated, the W/R identifier which is deactivated, the bit mode which is set to predetermined data width information, the chip ID which is set to a predetermined value (configuration value of the intended slave value), and further information on the set address value of the predetermined register.

In this case, before the read command part issued by the master chip returns to the master chip via the slave chips, and the master chip completes reception of a read data part issued by the slave chip which has carried out processing of the read command part, the master chip does not issue the next transaction.

With regard to a read transaction operation, while a read command part transferred from the master chip is received by each slave chip and transferred from the slave chip to the next slave chip or the master chip, a read data part is issued by one of the slave chips which has carried out processing of the read command part.

After having received the read command part, the master chip receives the read data part. The master chip is held in a wait state for receiving the read data part until completion of reception thereof. After completing the reception of the read data part, the master chip starts a transfer operation for the next transaction.

Each slave chip receives each transaction transferred from the master chip or the immediately preceding slave chip, and reads the identifiers and the information on data configuration from the transaction to determine whether or not the received transaction should be processed. According to the transaction which should be processed, the slave chip reads data from its register.

The slave chip having processed the read command part transfers the read data part based on the data read from the register. At this time, the slave chip having processed the read command part adds the identifiers and information on data configuration required for issuing the read data part to the data read from the register, to thereby issue the read data part.

When a read command part transferred to a slave chip is not one to be processed by the slave chip, the slave chip passes the read command part to the next slave chip without processing the same.

After the master chip transmits a read transaction to the slave chips, it receives the read command part having being transferred through the slave chips, and then receives a read data part. Therefore, when receiving the read command part, the master chip can determine, based on the chip ID, a slave chip that has performed data reading, and determine, based on address information, the address of the register from which data has been read. When receiving the read data part, the master chip can determine the data values of the register from which the data have been read, based on information on the data parts.

This enables the master chip to read data from the register of a slave chip from which data is desired to be read.

When a slave chip detects an error in the latch storing the error state, the slave chip recognizes that improper data exists in the transaction, and immediately transfers the transaction to the next slave chip or the master chip without writing or reading the data of the transaction in or from its register or the like.

The master chip (CPU thereof) determines the transfer state of each of the slave chips by accessing an associated latch storing the error state, periodically or when needed.

When the transfer state is in an error condition, the master chip (CPU thereof) gains access again to the register where the error has occurred. When the error has been detected in a write transaction, the same data is written again in the same register where the error has occurred, whereas when the error has been detected in a read transaction, data is read again from the same register where the error has occurred.

In the alternative method of handling an error in serial data transfer, when the transfer state is in an error condition, the master chip (CPU thereof) lowers the frequency of the synchronizing clock signal used in the serial data transfer, to thereby reduce the influence of noise generated in the serial data transfer. When the frequency of the synchronizing clock signal for transfer is lowered, an error becomes hard to be caused by noise.

The master chip lowers the frequency of the synchronizing clock signal while considering the transfer rate of serial data, and then accesses the latch storing the current error state of each slave chip. When the transfer state is still in an error condition, the master chip further lowers the frequency of the synchronizing clock signal.

The above-described processing is repeatedly carried out, whereby the optimal frequency of the synchronizing clock signal is determined at which the influence of noise is eliminated.

In the following, the present embodiment will be described in detail with reference to FIGS. 8A to 10.

The arrangement of a data processing system including a data transfer device according to the present embodiment is the same as that of the data processing system of the first embodiment shown in FIGS. 1 to 7, and therefore the following description will be given also with reference to FIGS. 1 to 7 as required.

FIGS. 8A to 8C are diagrams showing an example of data format of serial data used for transactions processed by the data transfer device according to the present embodiment. In FIGS. 8A to 8C, reference numeral 801 designates a stuffed bit, 802 a parity bit, 803 the command part, and 804 the data part.

FIG. 9 is a diagram useful in explaining a reset operation of the data transfer device according to the present embodiment. In FIG. 9, reference numeral 900 designates a slave chip, 901 an interface, 902 an internal circuit (1), 903 an internal circuit (2), 904 an internal circuit (3), 905 a reset signal, and 906 a reset generator.

FIG. 10 is also a diagram useful in explaining a reset operation of the data transfer device according to the present embodiment. In FIG. 10, reference numerals 1001 and 1002 designate FFs, 1003 a XOR gate, 1004 a latch, and 1005 an output data line.

The master chip handles all serial data transferred to the slave chips in units of unitary transactions each formed by several bits, and it is determined on a unitary transaction-by-unitary transaction basis whether or not each serial data is valid.

In transfer of serial data to the slave chips in units of unitary transactions, to determine the start point of each valid unitary transaction, the master chip always places only the stuffed bit 801 (see FIGS. 8B and 8C) which is the leading one bit of the valid unitary transaction in a H (High) state, but always places the leading one bit of each invalid unitary transaction in a L (Low) state. This enables the start point of each valid unitary transaction to be determined, and when serial data has been transferred by the number of bits to be handled as one unit of a unitary transaction, it is determined that transfer of the transaction is completed.

The master chip adds the parity bit 802 (see FIG. 8B) to each unitary transaction to thereby detect an error in the transaction.

As shown in FIG. 8A, transactions are classified into the command parts 803 and the data parts 804, and each command part 803 and the data part 804 associated with the command part 803 are transferred in the mentioned order.

The header of each of the command part 803 and the data part 804 contains the identifiers for designating the operation of the transaction. The command part 803 contains address data information in succession to the header (see FIG. 8B), while the data part 804 contains register data information in succession to the header (see FIG. 8C).

As shown in FIG. 6, a configuration operation command for a register is sent from the CPU 2001 of the system controller 500 to the system bus bridge 2007 via the CPU bus 2126, and then sent from the system bus bridge 2007 to the master interface 2147.

The configuration operation command is a command set for determining how many controllable slave chips are connected to the master chip in a ring. The configuration operation command includes a command for causing the master interface 2147 to issue a configuration transaction, and a command for reading the value of the chip ID when the issued configuration transaction returns to the master interface 2147.

The value of the chip ID corresponds to the number of slave chips connected to the master chip in a ring.

In response to the configuration operation command received from the CPU 2001, the master interface 2147 sets the value of the chip ID to 0, and prepares a configuration transaction. The configuration transaction prepared by the master interface 2147 is sent as serial data from the master interface 2147 to the printer image processing section 309 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511 (see FIG. 7).

When receiving the configuration transaction, the slave interface (1) 701 of the printer image processing section 309 increments the value of the received chip ID by 1 and stores the chip ID as its own chip ID. The chip ID whose value has been incremented by 1 is transmitted as the updated configuration transaction, i.e. as the serial data signal, from the slave interface (1) 701 to the slave interface (2) 702 of the image processing section 501 in timing synchronous with the synchronizing clock signal.

The configuration transaction thus updated is similarly processed by each of the slave chips of the image processing section 501 and the reader image processing section 308, and finally sent to the slave interface 2148 of the system controller 500.

After having received the configuration transaction, the slave interface 2148 acquires chip ID information therefrom and sends the chip ID data to the CPU 2001 of the system controller 500 via the system bridge bus 2007 and the CPU bus 2126.

The numerical values of the chip IDs thus sequentially updated represent respective numbers (IDs) assigned to the slave chips, with the final numerical value acquired from the returned configuration transaction being equal to the number of the slave chips.

In the present example, the chip ID of the printer image processing section 309 is 1, that of the image processing section 501 is 2, and that of the reader image processing section 308 is 3. The CPU 2001 recognizes that three slave chips are connected to the master chips.

Assuming that a write operation command for a register is sent from the CPU 2001 of the system controller 500 to the system bus bridge 2007 via the CPU bus 2126, and the address of the register into which data is to be written is associated with one of the printer image processing section 309, the image processing section 501, and the reader image processing section 308, the write operation command is sent from the system bus bridge 2007 to the master interface 2147.

The write operation command includes chip ID information, address information, and write data information, which are required for the CPU 2001 to execute writing of data in a register of a controllable slave chip.

Upon receipt of the write operation command, the master interface 2147 prepares a write command part based on the chip ID and address information of a slave chip for which the command is intended. The write command part prepared by the master interface 2147 is sent as serial data from the master interface 2147 to the printer image processing section 309 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

Then, after having issued the write command part, the master interface 2147 prepares a write data part based on the write data information. The write data part prepared by the master interface 2147 is sent as serial data via the master interface 2147 to the printer image processing section 309 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The slave interface (1) 701 of the printer image processing section 309 receives the write command part, and if the write address of the received write command part is for the slave chip of its own, the slave interface (1) 701 writes write data contained in the write data part onto the internal bus 707. At the same time, the slave interface (1) 701 passes the serial data sent thereto in parallel with the received write command part via the master interface 2147 to the image processing section 501 positioned next in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

At this time, if a parity error is detected in the received serial data, it is judged that an error has occurred in the transaction, and the slave interface (1) 701 does not perform the writing of the write data onto the internal bus 707.

The data writing operation is similarly performed by each of the respective slave chips of the image processing section 501 and the reader image processing section 308.

When receiving the serial data from the master interface (3) 706 of the reader image processing section 308, the slave interface 2148 checks whether or not the serial data has a parity error. If no parity error is detected, it is judged that processing for the write transaction (the write data part) is completed.

On the other hand, if a parity error is detected in the serial data received by the slave interface 2148, it is judged that an error has occurred in the write transaction, and an error code is issued to the CPU 2001 for error processing.

When a read operation command for a register is sent from the CPU 2001 of the system controller 500 to the system bus bridge 2007 via the CPU bus 2126, and the address of the register from which data is to be read is associated with one of the printer image processing section 309, the image processing section 501, and the reader image processing section 308, the read operation command is sent from the system bus bridge 2007 to the master interface 2147.

Upon receipt of the read operation command, the master interface 2147 prepares a read command part based on the chip ID and address information of a slave chip for which the command is intended. The read command part prepared by the master interface 2147 is sent as serial data from the master interface 2147 to the printer image processing section 309 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The read operation command includes chip ID and address information, which are required for the CPU 2001 to execute reading of data from a register of a controllable slave chip.

The printer image processing section 309, the image processing section 501, and the reader image processing section 308 receive the read command part. When the read address of the read command part is associated with the printer image processing section 309, the slave interface (1) 701 permits read access to the internal bus 707. When the read address is associated with the image processing section 501, the slave interface (2) 703 permits read access to the internal bus 708, while when the read address is associated with the reader image processing section 308, the slave interface (3) 705 permits read access to the internal bus 709.

At the same time, the master interface (1) 702 of the printer image processing section 309, the master interface (2) 704 of the image processing section 501, or the master interface (3) 706 of the reader image processing section 308 transmits the serial data received by the associated one of the slave interface (1) 701, the slave interface (2) 703, and the slave interface (3) 705 onto the serial data signal line 510 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

Upon receipt of the read command part, the master interface (1) 702, the master interface (2) 704, or the master interface (3) 706, i.e. the master interface of the slave chip associated with the read address receives the read data from the associated one of the internal buses 707, 708, and 709, and prepares a read data part. Then, after converting the read data part into serial data, the master interface transmits the serial data onto the serial data signal line 510 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The slave interface 2148 receives the read command part of the serial data transmitted from the master interface (3) 706 of the reader image processing section 308, and then receives the read data part.

Upon receipt of the read data part, the slave interface 2148 acquires information on read data necessary for reading the same from the associated register, from the received read data part, and sends the read data for the register to the CPU 2001 of the system controller 500 via the system bus bridge 2007 and the CPU bus 2126.

The slave interface 2148 checks whether or not there is a parity error in the read command part and the read data part. If no parity error is detected, it is judged that the transaction of reading data is completed.

On the other hand, if a parity error is detected in the serial data received by the slave interface 2148, it is judged that an error has occurred in the transaction, and an error code is issued to the CPU 2001 for error processing.

When a write operation command or a read operation command for a register is sent from the CPU 2001 of the system controller 500 to one of the slave chips, a predetermined transaction is transferred from the master interface 2147 to the slave chip associated with the operation command.

Serial data transferred to each slave chip is sent to the interface 901 appearing in FIG. 9. The interface 901 in FIG. 9 corresponds to the pair of the slave interface (1) 701 and the master interface (1) 702. The slave chip 900 corresponds to the printer image processing section 309, the image processing section 501, or the reader image processing section 308.

The internal circuit (1) 902, the internal circuit (2) 903, and the internal circuit (3) 904 in FIG. 9 are provided inside the slave chip 900. The master interface 2147 accesses the internal circuits 902 to 904 via the interface 901 by serial data transfer.

The slave chip 900 synchronizes the transferred serial data with the synchronizing clock signal at the first stage FF 1001 in FIG. 10, and with the clock signal obtained by inverting the synchronizing clock signal at the FF 1002 at the same time. Output data from the FF 1001 and the FF 1002 are XORed by the XOR gate 1003, and the XORed data is stored in the latch 1004.

When receiving a reset operation command from the CPU 2001, the master interface 2147 prepares a reset transaction using the chip ID of a slave chip for which this command is intended. The reset transaction prepared by the master interface 2147 is sent as serial data from the master interface 2147 to the printer image processing section 309 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The reset command is a command set issued to the master interface 2147, for resetting controllable slave chips individually or all at a time. The reset command includes a command for causing the master interface 2147 to issue the reset transaction, and a chip ID value of a slave chip desired to be reset.

The chip ID value is set to 1 when it is desired to reset the printer image processing section 309, to 2 when it is desired to reset the image processing section 501, and to 3 when it is desired to reset the reader image processing section 308. When it is desired to reset all the slave chips, the chip ID value is set to 0.

Referring to FIG. 7, the slave interface (1) 701 of the printer image processing section 309 receives a reset transaction, and if the chip ID value contained in the received reset transaction is 0 or equal to the chip ID value stored during the configuration transaction, reset processing is executed. In this case, before the reset processing is started, the reset transaction is sent as serial data from the master interface (1) 702 to the slave interface (2) 703 of the image processing section 501 in timing synchronous with the synchronizing clock signal. The reset processing is executed after completion of transmission of the reset transaction from the master interface (1) 702.

The reset processing is performed on the internal circuit of the printer image processing section 309 as well as on the slave interface (1) 701 and the master interface (1) 702. The reset of the slave interface (1) 701 and the master interface (1) 702 is executed after completion of transmission of the reset transaction from the master interface (1) 702. The reset of the internal circuit of the printer image processing section 309 is performed by outputting a reset signal to the internal circuit from the slave interface (1) 701 or the master interface (1) 702.

The interface 901 in FIG. 9 corresponds to the pair of the internal circuit from the slave interface (1) 701 and the master interface (1) 702, as mentioned above. The aforementioned internal circuit corresponds to the internal circuit (1) 902, the internal circuit (2) 903, and the internal circuit (3) 904. During the reset operation, the interface 901 activates the reset signal 905 for the internal circuits 902 to 904. If the active time interval of the reset signal 905 is required to be not shorter than a predetermined time period, the active time interval is increased by an amount corresponding to the required time period, whereby the internal circuit (1) 902, the internal circuit (2) 903, and the internal circuit (3) 904 are reset. Simultaneously, the interface 901 itself enters a reset state.

The reset transaction similarly passes through the image processing section 501 and the reader image processing section 308, and is finally sent to the slave interface 2148 of the system controller 500.

This enables the CPU 2001 to carry out a reset operation only on a desired slave chip, without adversely affecting the other slave chips by the reset operation.

As described above in detail hereinabove, according to the present embodiment, a master chip and a plurality of slave chips which receive data transferred from the master chip are connected in a ring, for transmission and reception of serial data between the chips. As a result, the single master chip can send the serial data to the slave chips in one transaction.

Further, each of the master chip and the slave chips is required to have only two ports, i.e. a port for serial data and a synchronizing clock signal port for serial data transfer, as interface ports. As a result, it is possible to reduce the number of ports in each chip.

Furthermore, even when the number of the slave chips is increased, the number of the ports in each of the chips is not changed, and the chips are connected in a ring by signal lines (the serial data signal line and the synchronizing clock signal line). As a result, it is possible to prevent an increase in the number of signal lines.

Moreover, when it is desired to reset or initialize a predetermined slave chip alone, it is possible to easily reset only the predetermined slave chip through communication with the slave chip from the master chip, without resetting the other chips and the system itself.

Next, a description will be given of a third embodiment of the present invention.

In the present embodiment as well, to solve the problems with the prior art, two or more slave chips are connected in a ring to a single master chip by two signal lines, i.e. a serial data signal line and a transfer synchronizing clock line such that register data to be transferred can be sent as serial data along the serial data signal line and transferred from one slave chip to another, to finally return to the master chip.

Similarly to the serial data transferred on the serial data line, the synchronizing clock signal flowing on the transfer synchronizing clock line can be transferred from one slave chip to another, to finally return to the master chip.

The master chip and the slave chips receive and transmit the serial data on the serial data signal line in timing synchronous with the synchronizing clock signal on the transfer synchronizing clock line.

The serial data is transferred from the master chip to the slave chips, whereby the master chip controls each of the slave chips to read from or write in a resister of the slave chip.

To reset each of the slave chips from the master chip, the master chip issues a reset transaction. The issued reset transaction is sent as serial data from the master chip sequentially through the slave chips connected in a ring to the master chip. Upon receipt of the serial data, each slave chip resets the internal components thereof only when the slave chip is intended to be reset. Otherwise, the slave chip passes the serial data to the next slave chip or the master chip. Thus, only the intended slave chip is reset.

To write in a register, the master chip issues a write transaction, whereby data is written only in a register of a predetermined slave chip.

Similarly, to read from a register, the master chip issues a read transaction, whereby only data in a register of a predetermined slave chip is read.

The master chip handles all serial data transferred to the slave chips in units of unitary transactions each formed by several bits, and determines on a unitary transaction-by-unitary transaction basis whether or not each serial data is valid.

In transfer of serial data in units of transactions, to determine the start point of each valid unitary transaction, the master chip always places only the leading one bit thereof in a H (High) state, but always places the first bit of each invalid unitary transaction in a L (Low) state. This enables the start point of each valid unitary transaction to be determined, and when serial data has been transferred by the number of bits to be handled as one unit of a unitary transaction, it is determined that transfer of the transaction is completed.

When a bit error occurs in a unitary transaction during transfer of serial data in units of unitary transactions between the master chip and the slave chips, and the unitary transaction comes to contain improper data information, error control is executed in each of the slave chips so as to prevent the improper data information from being written in a register or the like of the slave chip.

In the error control, the master chip adds a parity bit to data in each unitary transaction, and then transfers the data to the slave chips. Upon reception of each unitary transaction data, the slave chips perform a parity check on the parity bit to determine whether or not the parity bit added to the data by the master chip matches the parity bit of the received data, thereby detecting an erroneous transaction.

In the error control, parity checking is performed not only by each of the slave chips, but also by the master chip on the serial data returned from the slave chips through transfer along the ring-like signal line on a unitary transaction-by-unitary transaction basis.

In the error control, when a slave chip detects an erroneous transaction, the slave chip recognizes that improper data information exists in the transaction, and immediately transfers the transaction data to the next slave chip or the master chip without writing or reading the transaction data in its register or the like.

In the error control, when the master chip detects an erroneous transaction, the master chip recognizes that improper data information exists in the transaction, and displays an error message concerning the transaction data to provide an external notification that transfer of the transaction has failed.

Serial data is divided into command data for discriminating the type of transfer and data to be transferred, and the former is handled as a transaction of command data (hereinafter referred to as the command transaction or the command part), and the latter as a transaction of data (hereinafter referred to as the data transaction or the data part).

Further, to identify each of the slave chips, the master chip issues a configuration transaction to the slave chips to thereby assign a unique number to each of the slave chips and uses this number as a chip ID (identifier) for identifying the associated slave chip.

The command part includes an identifier for discrimination between the data part and the command part (hereinafter referred to as the C/D identifier), an identifier for discrimination between a write transaction and a read transaction (hereinafter referred to as the W/R identifier), an identifier for identifying the transfer width of data (hereinafter referred to as the bit mode), the identifier as the chip ID for identifying a slave chip (hereinafter referred to as the chip ID), and information on a read or write address.

The data part includes the C/D identifier, the W/R identifier, Bit Mode, the chip ID and information on data to be read or written.

To issue transactions to the slave chips, after the system is reset, first, the master chip issues the configuration transaction to the slave chips to assign respective chip IDs thereto.

When the reset transaction is issued as well, after the system is reset, first, the master chip issues the configuration transaction to the slave chips to assign respective chip IDs to the slave chips again, followed by starting each transaction.

The configuration transaction has only the command part, and the command part includes the C/D identifier which is activated (it is assumed that the C/D identifier is, for example, activated when the transaction is the command part, and deactivated when the same is the data part), a type identifier (it is assumed that, for example, the type identifier is set to 00 when the transaction is a configuration transaction), and the chip ID (it is assumed that the chip ID is, for example, set to 0 when the transaction is issued from the master chip).

The master chip does not issue the next transaction until the configuration transaction issued by the master chip returns to the master chip via the slave chips and the master chip completes the reception thereof.

Upon reception of the configuration transaction, each slave chip adds 1 to the value of the chip ID in the configuration transaction and then stores the value in a chip ID data register provided in the slave chip.

Then, each slave chip puts the value stored in the chip ID data register thereof into the configuration transaction to be forwarded to the next slave chip or the master chip, and delivers the resulting configuration transaction.

The configuration transaction is passed from one slave chip to another, to finally return to the master chip. The master chip determines, based on the value of the chip ID in the received configuration transaction, how many slave chips are connected in a ring. When the value of the chip ID is equal to N, it means that N slave chips are connected in a ring.

To write data in a predetermined register of a specific one of the slave chips, the master chip issues a command part to the slave chip, and then a data part in succession thereto.

In this case, the command part includes the C/D identifier which is activated, the W/R identifier which is activated, the bit mode which is set to predetermined data width information, the chip ID which is set to a predetermined value (configuration value of the intended slave chip), and information on the set address value of the predetermined register.

The data part includes the C/D identifier which is deactivated, the W/R identifier which is activated, the bit mode which is set to the predetermined data width information, the chip ID, and information on the set value of the data to be written in the predetermined register.

In this case, even before the write transaction issued by the master chip returns to the master chip via the slave chips, the master chip issues write transactions successively.

Therefore, insofar as a write transaction is concerned, the master chip does not check from the write transaction whether or not data has been written in any one of the slave chips. The master chip having received a transaction sent from the slave chips through the ring-like signal line only determines whether or not there was any parity error in the received transaction (any one of the unitary transactions thereof).

On the other hand, each of the slave chips receives the transactions transferred from the master chip or the immediately preceding slave chip, and reads the identifiers and the information on data configuration from the transactions to determine whether or not the received transaction should be processed. If the received transaction should be processed, the data is written in the register of the slave chip. Transactions which are not to be processed by the slave chip are sequentially passed to the next slave chip or to the master chip.

This enables the master chip to write data in the register of a slave chip into which data is desired to be written.

To read data from the register of a specific one of the slave chips, the master chip issues only a command part to the specific slave chip.

In this case, the command part includes the C/D identifier which is activated, the W/R identifier which is deactivated, the bit mode which is set to predetermined data width information, the chip ID which is set to a predetermined value (configuration value of the intended slave value), and further information on the set address value of the predetermined register.

In this case, before the read command part issued by the master chip returns to the master chip via the slave chips, and the master chip completes reception of a read data part issued by the slave chip which has carried out processing of the read command part, the master chip does not issue the next transaction.

With regard to a read transaction operation, while a read command part transferred from the master chip is received by each slave chip and transferred from the slave chip to the next slave chip or the master chip, a read data part is issued by one of the slave chips which has carried out processing of the read command part.

After having received the read command part, the master chip receives the read data part. The master chip is held in a wait state for receiving the read data part until completion of reception thereof. After completing the reception of the read data part, the master chip starts a transfer operation for the next transaction.

Each slave chip receives each transaction transferred from the master chip or the immediately preceding slave chip, and reads the identifiers and the information on data configuration from the transaction to determine whether or not the received transaction should be processed. According to the transaction which should be processed, the slave chip reads data from its register.

The slave chip having processed the read command part transfers the read data part based on the data read from the register. At this time, the slave chip having processed the read command part adds the identifiers and information on data configuration required for issuing the read data part to the data read from the register, to thereby issue the read data part.

When a read command part transferred to a slave chip is not one to be processed by the slave chip, the slave chip passes the read command part to the next slave chip without processing the same.

After the master chip transmits a read transaction to the slave chips, it receives the read command part having being transferred through the slave chips, and then receives a read data part. Therefore, when receiving the read command part, the master chip can determine, based on the chip ID, a slave chip that has performed data reading, and determine, based on address information, the address of the register from which data has been read. When receiving the read data part, the master chip can determine the data values of the register from which the data have been read, based on information on the data parts.

This enables the master chip to read data from the register of a slave chip from which data is desired to be read.

To reset a specific one of the slave chips, the master chip issues a reset transaction to the slave chip.

The reset transaction has only a command part, and the command part includes the C/D identifier which is activated, and the Chip ID which is set to a predetermined value for a slave to be reset (configuration value of the slave chip to be reset).

Before the reset transaction issued by the master chip returns to the master chip via the slave chips, and the master chip completes reception of the reset transaction, the master chip does not issue the next transaction.

After being issued from the master chip, the reset transaction is sent to the slave chips through the serial data signal line connecting the slave chips in a ring.

Each slave chip receives the transaction transferred from the master chip or the immediately preceding slave chip, and reads the identifiers and information on the chip ID configuration from the transaction. The slave chip starts reset processing in response to the transaction only when the received transaction is a reset transaction and at the same time the chip ID value is associated with the slave chip. When the received reset transaction is not associated with the slave chip, the slave chip does not execute reset processing, and passes the reset transaction to the next slave chip or the master chip.

Even when the received reset transaction is associated with the slave chip, the slave chip also passes the reset transaction to the next slave chip or the master chip.

When the received reset transaction is associated with the slave chip and the reset processing is to be executed, an internal circuit controlling transactions is reset. This internal circuit is provided in the slave chip, for carrying out control for transactions. At this time, a circuit of a block for delivering a transaction to the next slave chip or the master chip is controlled such that the reset is enabled after the transaction has been sent to the next slave chip or the master chip. This makes it possible to prevent the reset processing from affecting a transaction to be sent next.

Reset processing is realized by outputting a reset signal from the internal circuit controlling the reset transaction, such that the internal components of the slave chip are reset. When the reset processing by the reset transaction is executed, the internal circuit resets circuits within the slave chip while maintaining the reset signal in an activated state over a predetermined time period. Thereafter, the internal components of the internal circuit are reset, and when the predetermined time period has elapsed, the reset signal is deactivated.

In the following, a description will be given of details of the present embodiment.

The arrangement of the data processing system including the data transfer device according to the present embodiment is the same as that of the data processing system of the first embodiment shown in FIGS. 1 to 7. The data structure of serial data of transactions handled by the data transfer device according to the present embodiment is the same as that in the second embodiment shown in FIG. 8. Further, a reset operation by the data transfer device according to the present embodiment is the same as that by the second embodiment shown in FIG. 9. Therefore, the following description will be given with reference to these figures as required.

Referring to FIG. 6, when a reset command is sent from the CPU 2001 in the system controller 500 to the system bus bridge 2007 via the CPU bus 2126 and at the same time a chip to be reset is one of the printer image processing section 309, the image processing section 501, and the reader image processing section 308, the reset command is sent from the system bus bridge 2007 to the master interface 2147.

Upon receipt of the reset command, the master interface 2147 prepares a reset transaction based on the chip ID of a slave chip associated with the reset command. The reset transaction prepared by the master interface 2147 is delivered as serial data from the master interface 2147 to the printer image processing section 309 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511.

The reset command is a command set issued to the master interface 2147, for resetting controllable slave chips individually or all at a time. The reset command includes a command for causing the master interface 2147 to issue the reset transaction, and a chip ID value of a slave chip desired to be reset.

The chip ID value is set to 1 when it is desired to reset the printer image processing section 309, to 2 when it is desired to reset the image processing section 501, and to 3 when it is desired to reset the reader image processing section 308. When it is desired to reset all the slave chips, the chip ID value is set to 0.

Referring to FIG. 7, the slave interface (1) 701 of the printer image processing section 309 receives a reset transaction, and if the chip ID value contained in the received reset transaction is 0 or equal to a chip ID value stored during the configuration transaction, reset processing is executed. In this case, before the reset processing is started, the reset transaction is sent as serial data from the master interface (1) 702 to the slave interface (2) 703 of the image processing section 501 in timing synchronous with the synchronizing clock signal flowing on the synchronizing clock signal line 511. The reset processing is executed after completion of transmission of the reset transaction from the master interface (1) 702.

The reset processing is performed on the internal circuit of the printer image processing section 309 as well as on the slave interface (1) 701 and the master interface (1) 702. The reset of the slave interface (1) 701 and the master interface (1) 702 is executed after completion of transmission of the reset transaction from the master interface (1) 702. The reset of the internal circuit of the printer image processing section 309 is performed by outputting a reset signal to the internal circuit from the slave interface (1) 701 or the master interface (1) 702.

The interface 901 in FIG. 9 corresponds to a pair of the slave interface (1) 701 and the master interface (1) 702. The aforementioned internal circuit corresponds to the internal circuit (1) 902, the internal circuit (2) 903, and the internal circuit (3) 904. During the reset operation, the interface 901 activates the reset signal 905 for the internal circuits 902 to 904. If the active time interval of the reset signal 905 is required to be not shorter than a predetermined time period, the active time interval is increased by an amount corresponding to the required time period, whereby the internal circuit (1) 902, the internal circuit (2) 903, and the internal circuit (3) 904 are reset. Simultaneously, the interface 901 itself enters a reset state.

The reset transaction is similarly passed through the image processing section 501 and the reader image processing section 308, and is finally sent to the slave interface 2148 of the system controller 500.

This enables the CPU 2001 to carry out a reset operation only on a desired slave chip, without adversely affecting the other slave chips by the reset operation.

The configuration of chip-to-chip serial data transfer, the format of serial data or unitary transactions, the configuring operation performed using chip-to-chip serial data transfer, a write operation performed using chip-to-chip serial data transfer, and a read operation performed using chip-to-chip serial data transfer are identical to those in the second embodiment, and therefore description thereof is omitted.

As described above in detail, according to the present embodiment, a master chip and a plurality of slave chips which receive data transferred from the master chip are connected in a ring, for transmission and reception of serial data between the chips. As a result, the single master chip can send the serial data to the slave chips in one transaction.

Further, each of the master chip and the slave chips is required to have only two ports, i.e. a port for serial data and a synchronizing clock signal port for serial data transfer, as interface ports. As a result, it is possible to reduce the number of ports in each chip.

Furthermore, even when the number of the slave chips is increased, the number of the ports in each of the chips is not changed, and the chips are connected in a ring by signal lines (the serial data signal line and the synchronizing clock signal line). As a result, it is possible to prevent an increase in the number of signal lines.

Moreover, when it is desired to reset or initialize a predetermined slave chip alone, it is possible to easily reset only the predetermined slave chip through communication with the slave chip from the master chip, without resetting the other chips and the system itself.

The present invention is not limited to the above described embodiments, but can be modified in various manners based on the subject matter of the present invention, which should not be excluded from within the scope of the present invention insofar as functions as recited in the appended claims or the functions performed by the construction of the above described embodiment can be achieved.

CROSS REFERENCE TO RELATED APPLICATION

This application claims priority from Japanese Patent Application No. 2004-169150 filed Jun. 7, 2004, which is hereby incorporated by reference herein. 

1. A method of transferring data between a single master chip and a plurality of slave chips, the method comprising: a connecting step of connecting the master chip and the slave chips that receive data transferred from the master chip, by a ring-shaped path; and a data transfer step of transferring the data from the master chip to the slave chips via the ring-shaped path, wherein the slave chips each receive the data transferred from the master chip, the data being handled as transactions in units of transactions each formed by several bits, and analyze each received transaction, wherein the transactions include a transaction for reading data from a register provided in at least one of the slave chips that is to process the transaction, and wherein the slave chips each receive a command transaction for reading contained in the transaction for reading, determine whether the received command transaction is to be processed by the slave chip, and transfer the command transaction for reading to a next one of the slave chips in parallel with the determination, and the next slave chip, if it is to process the received command transaction for reading, reads the data from the register provided therein, and transfers the data read from the register to a next one of the slave chips as a data transaction for reading, and wherein the command transaction for reading and the data transaction, which have been transferred, are finally transferred to the master chip, the master chip determining that processing of the transaction for reading is completed at a time point reception of the data transaction for reading is completed.
 2. A method as claimed in claim 1, wherein: the slave chips have respective registers; and said data transfer step comprises transferring, as the data, information on writing in or reading from at least one of the registers, or resetting of at least one of the slave chips.
 3. A method as claimed in claim 1, wherein the slave chips each complete processing of the transaction by carrying out internal processing, including writing or reading, on a register provided in the slave chip, or transferring the data as the transaction to a next one of the slave chips to finally transfer the data as the transaction to the master chip.
 4. A method as claimed in claim 3, wherein when each of the slave chips receives a transaction for writing, at least one of the slave chips that is to process the transaction for writing, writes the data in the register provided therein, and transfers the transaction for writing to a next one of the slave chips in parallel with the writing, and the other slave chips than the slave chip that is to process the transaction for writing transfer the transaction for writing to a next one of the slave chips or the master chip without stopping the transfer of the transaction for writing therein.
 5. A method as claimed in claim 4, wherein the master chip is capable of issuing a next transaction before the transaction for writing issued to at least one of the slave chips returns to the master chip.
 6. A method as claimed in claim 1, wherein the data transferred in said data transfer step comprises transactions, each of the transactions having at least one type of information on at least one of writing, reading, configuration, or resetting to be executed on at least one of the slave chips.
 7. A method as claimed in claim 6, wherein the transactions include a command transaction containing information on a command, and a data transaction containing information on data for a register, the command transaction and the data transaction being separately transferred to each of the slave chips.
 8. A method as claimed in claim 1, wherein the master chip does not issue a next transaction for reading until the master chip determines that processing of the transaction for reading is completed.
 9. A method as claimed in claim 1, wherein the data transferred in said data transfer step comprises transactions, each of the transactions having a data width of a predetermined unit, the method comprising a determining step of determining whether a valid transaction has been transferred by managing all the transactions in units of the data width.
 10. A method as claimed in claim 9, wherein said determining step comprises always placing a leading one data bit of each valid transaction in a high state, and always placing a leading one data bit of each invalid transaction in a low state, to determine a start point of the valid transaction in managing the transactions in units of the data width.
 11. A method as claimed in claim 10, wherein the leading one data bit is one bit of serial data.
 12. A method of transferring data and a synchronizing clock used for transfer of the data between a single master chip, and a first slave chip and a second slave chips, the method comprising: a connecting step of connecting the master chip, the first slave chip that receives the data transferred from the master chip according to the synchronizing clock, and the second slave chip that receive the data transferred from the first slave chip according to the synchronizing clock, by a ring-shaped path; and a data transfer step of transferring the data from the master chip to the first and second slave chips via the shaped path, wherein the first and second slave chips receive the data transferred from the master chip, the data being all handled as transactions in units of transactions each formed by several bits, and analyze each received transaction, and wherein the transactions include a transaction for reading data from a register provided in at least one of the slave chips that is to process the transaction, and wherein the first and second slave chips each receive a command part for reading contained in the transaction for reading, determine whether the received command part for reading is to be processed by the slave chip, and transfer the command part for reading to a next one of the slave chips in parallel with the determination, and the next slave chip, if it is to process the received transaction for reading reads the data from the register provided therein, and transfers the data read from the register to a next one of the slave chips as a data part of the transaction for reading, and wherein the command part for reading and the data part, which have been transferred, are finally transferred to the master chip, the master chip determining that processing of the transaction for reading is completed at a time point reception of the data part for reading is completed.
 13. A method as claimed in claim 12, wherein: the first and second slave chips have respective registers; and said data transfer step comprises transferring as the data information on writing in or reading from at least one of the slave chips, or on resetting of at least one of the slave chips.
 14. A method as claimed in claim 12, wherein the first and second slave chips complete processing of the transaction by carrying out internal processing, including writing, reading, or resetting, on a register provided in the slave chip, or transferring the data as the transaction to a next one of the slave chips to finally transfer the data as the transaction to the master chip.
 15. A method as claimed in claim 12, comprising a storage step of storing a transfer state of the data transferred from the master chip to the first and second slave chips in the first and second slave chips.
 16. A method as claimed in claim 15, wherein the transfer state of the data represents reliability of a signal line for transferring the data, dependent on noise superposed on the data being transferred along the signal line depending on a transfer condition of the data.
 17. A method as claimed in claim 15, comprising a reading step of causing the master chip to read the transfer state of the data stored in the first and second slave chips from the master chip, by a method selected from the group consisting of a first method of reading the transfer state of the data stored in the first and second slave chips in a same manner as reading from the registers provided in the first and second slave chips, and a second method of outputting information on the transfer state, from the first and second slave chips, using a signal line other than the signal line connecting between the first and second slave chips.
 18. A method as claimed in claim 15, comprising a reading step of causing the master chip to read the transfer state of the data stored in the first and second slave chips from the master chip, and a transfer speed lowering step of lowering a speed of transfer of the data when the read transfer state of the data is in an error condition, to thereby improve the transfer state of the data.
 19. A method as claimed in claim 18, comprising a reading step of causing the master chip to read the transfer state of the data stored in the first and second slave chips, and wherein when the read transfer state of the data is in an error condition, in said data transfer step, it is judged that reliability of data during data transfer is low, and the data is transferred again.
 20. A method as claimed in claim 15, wherein the transfer state of the data stored in the first and second slave chips is determined based a state of data synchronized with a leading edge of a synchronizing clock used for transfer of the data, and a state of data synchronized with a leading edge of a clock inverted from the synchronizing clock for the transfer of the data.
 21. A method as claimed in claim 15, comprising a selecting step of selecting whether to cause the master chip to read the transfer state of the data stored in the first and second slave chips, by a user controlling reading by the master chip.
 22. A method as claimed in claim 12, wherein the data transferred in said data transfer step comprises transactions, each of the transactions having at least one type of information on at least one of writing, reading, configuration, or resetting to be executed on at least one of the first and second slave chips.
 23. A method as claimed in claim 22, wherein the transactions include a command part containing information on a command, and a data part containing information on data for a register, and the command part and the data part being separately transferred to the first and second slave chips.
 24. A method as claimed in claim 22, wherein when the first and second slave chips each receive a transaction for writing, at least one of the slave chips that is to process the transaction for writing, writes the data in the register provided therein, and transfers the transaction for writing to a next one of the slave chips in parallel with the writing, and the other slave chip than the slave chip that is to process the transaction for writing transfers the transaction for writing to a next one of the first and second slave chips or the master chip without stopping the transfer of the transaction for writing thereat.
 25. A method as claimed in claim 24, wherein the master chip is capable of issuing a next transaction before the transaction for writing issued to at least one of the first and second slave chips returns to the master chip.
 26. A method as claimed in claim 12, wherein the master chip does not issue a next transaction for reading until the master chip determines that processing of the transaction for reading is completed.
 27. A method as claimed in claim 12, wherein the data transferred in said data transfer step comprises transactions, each of the transactions having a data width of a predetermined unit, the method comprising a determining step of determining whether a valid transaction has been transferred by managing all the transactions in units of the data width.
 28. A method as claimed in claim 27, wherein said determining step comprises always placing a leading one data bit of each valid transaction in a high state, and always placing a leading one data bit of each invalid transaction in a low state, to determine a start point of the valid transaction in managing the transactions in units of the data width.
 29. A method as claimed in claim 28, wherein the leading one data bit is one bit of serial data. 